package com.example.boot5mysqlatomikos.controller;

import com.example.boot5mysqlatomikos.bean.ConsultConfigArea;
import com.example.boot5mysqlatomikos.service.AreaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 一个业务代码块中设计多个数据源的这种情况，保证事务的一致性，并非分步式事务
 * 事务管理起使用的是jtaTransactionManager
 *
 * 多数据源
 atomikos 事务管理器的使用

 基于XA协议的两阶段提交

 项目中使用的是一个win mysql,一个 liunx mysql,
 保证了数据的一致性
 它可用来同一个项目，可以使用不同服务器上的数据库服务，

 附录：CommonMapper2.xml 并没有使用，
 后续有时间可以略做修改，同时支持mybatis 的sql xml

 CommonMapper2.xml,使用了，
 并在Db2config中进行了配置路径 相应代码中有注释说明

 */
@RestController
@RequestMapping("/atomikos")
public class AtomikosController {

    @Autowired
    private AreaService areaService;

    @RequestMapping("/saveArea")
    public Integer saveArea() {
        ConsultConfigArea area = new ConsultConfigArea();
        area.setAreaCode("cfl99");
        area.setAreaName("cfl99");
        area.setState(1);
        return areaService.saveArea(area);
    }
}
